/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ec.edu.espe.distribuidas.aseguradora.servicio;

import ec.edu.espe.distribuidas.aseguradora.dao.FormaPagoFacade;
import ec.edu.espe.distribuidas.aseguradora.exception.ErrorValidacionException;
import ec.edu.espe.distribuidas.aseguradora.modelo.FormaPago;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

/**
 *
 * @author alejandro
 */
@Stateless
@LocalBean
public class FormaPagoServicio {
    
    @EJB
    private FormaPagoFacade formaPagaoFacade;
    
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void crar(FormaPago formaPago){
        
        FormaPago formaPagoTemp=this.formaPagaoFacade.find(formaPago.getCodFormaPago());
        if(formaPagoTemp==null){
            this.formaPagaoFacade.create(formaPago);
        }else{
            System.err.println("La forma de pago ya existe"+formaPagoTemp.getCodFormaPago());
            ErrorValidacionException evex= new ErrorValidacionException("La forma de pago ya existe");
            throw evex;
            
        }
        
    }
    
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void modificar(FormaPago formaPago){
        this.formaPagaoFacade.edit(formaPago);
    }
    
    public void eliminar(String codigo){
        FormaPago formaPagoTemp=this.formaPagaoFacade.find(codigo);
        if(formaPagoTemp!=null){
            this.formaPagaoFacade.remove(formaPagoTemp);
        }else{
            System.err.println("La forma de pago "+codigo+"no existe");
            ErrorValidacionException evex= new ErrorValidacionException("La forma de pago no existe");
            throw evex;           
        }
    
    }
    
    public FormaPago buscarPorCOdigo(String codigo)
    {
        return this.formaPagaoFacade.find(codigo);
    }
    
    public List<FormaPago> obtenerTodos(){
        return this.formaPagaoFacade.findAll();
    }
    
    
    
    
}
    
